/* 
 * File:   dsp.h
 * Author: gustavo
 *
 * Created on July 18, 2011, 1:13 AM
 */

#ifndef DSP_H
#define	DSP_H

#include "../matrix/matrix.h"

#ifdef	__cplusplus
extern "C" {
#endif

	void imp_dsp_conv(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix ** Conv);
	void imp_dsp_conv_at_mask(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix * MASK, ImpMatrix ** Conv);
	void imp_dsp_conv_2_pass(ImpMatrix * Mat, ImpMatrix * Mask1, ImpMatrix * Mask2, ImpMatrix ** Conv);
	void imp_dsp_conv_2_pass_mask(ImpMatrix * Mat, ImpMatrix * Mask, ImpMatrix * Mask1, ImpMatrix * Mask2, ImpMatrix ** Conv);
	
	void imp_dsp_order_filtering(ImpMatrix * Mat, int order, ImpMatrix * Domain, ImpMatrix * Mask, ImpMatrix ** Out);


#ifdef	__cplusplus
}
#endif

#endif	/* DSP_H */

